

#ifndef _zrxsrvice_h
#define _zrxsrvice_h 1

#include "zrxobject.h"
#pragma pack (push, 8)

extern "C" {
    typedef UcRx::AppRetCode (*DepFuncPtr)(UcRx::AppMsgCode, void*);
}

class UcRxServicePrototype;
class UcRxService;

class UcRxService: public UcRxObject
{
public:
    UCRX_DECLARE_MEMBERS(UcRxService);
    UcRxService();
    virtual ~UcRxService();

    UcRxObject* getSysInfo() const;
    void        setSysInfo(UcRxObject* sysInfoObj);

    void        addDependency();
    void        removeDependency();

    ZSoft::Boolean unloadable() const;

    DepFuncPtr dependencyFunctionPtr();
    void setDependencyFunctionPtr(DepFuncPtr);

private:
    UcRxServicePrototype* mpImpService;
};

#pragma pack (pop)
#endif
